package com.zjt.service;

import com.zjt.entity.factory.FactoryInfo;
import com.zjt.web.api.vo.base.PageVO;
import org.springframework.data.domain.Page;
import java.util.List;
/**
 * Created with IntelliJ IDEA.
 * User: xueyanbeijing
 * Date: 12-8-25
 * Time: AM6:11
 * To change this template use File | Settings | File Templates.
 */
public interface IFactoryService {
    /**
     * 通过企业ID查询企业实体表信息
     * @param productId
     * @return
     */
    public FactoryInfo getFactoryListByProductId(long productId);  //通过某个产品的id 查询企业的列表

    /**
     * 通过企业名称查询企业实体表信息
     * @param productName
     * @return
     */
    public FactoryInfo getFactoryInfoByProductName(String productName);

    /**
     *通过类别取相关企业列表，例如：茅台 白酒
     * @param brandCategoryId
     * @return
     */
    public List<FactoryInfo> getFactoryListByBrandCategory(long brandCategoryId);//根据品牌类别ID查查询企业列表

    /**
     * 通过商标（品牌）取企业列表
     * @param brandId
     * @return
     */
    public List<FactoryInfo> getFactoryListByBrand(long brandId);

    /**
     * 通过商标名称取企业列表
     * @param brandName
     * @return
     */
    public List<FactoryInfo> getFactoryListByBrandName(String brandName);

    /**
     * 保存企业列表，如果flag=0,则为新增，如果为1则为修改。
     * @param chName
     * @param enName
     * @param contact
     * @param tel
     * @param httpweb
     * @param email
     * @param address
     * @param shopDesctiption
     * @param extension
     * @param flag
     * @return
     */
    public FactoryInfo saveFactoryInfo(String chName,String enName,String contact,
                               String tel,String httpweb,String email,
                               String address,String shopDesctiption,
                               String extension,int flag);  //保存企业信息表,默认为插入，否则为更新

    /**
     * 通过产品ID取企业数量
     * @param productId
     * @return
     */
    public int countFactoryByProductId(long productId);

    /**
     * 通过品牌类别取企业数量
     * @param brandCategoryId
     * @return
     */
    public int countFactoryByBarandCategory(long brandCategoryId);

    /**
     * 通过品牌取企业数量
     * @param brandId
     * @return
     */
    public int countFactoryByBrand(long brandId);

    /**
     * 根据 企业ID,取FactoryInfo
     * @param factoryId
     * @return
     */
    FactoryInfo getFactoryInfoById(long factoryId);


    Page<FactoryInfo> getFactoryInfoList(PageVO pageVO);
}
